1 REM"********************" 2 REM"*[195]HANGE [204]OAD ADRESS*" 3 REM"* BY [193]NDREW [198]ISHER *" 4 REM"********************" 10 PRINTCHR$(14);CHR$(8);"[147][154][204]OADING MACHINE CODE... [208]LEASE WAIT..." 11 A=A+1:IFA=1 THENLOAD"MACHINE CODE1",8,1 12 IFA=2 THEN LOAD"MACHINE CODE2",8,1 20 PRINT"[147]";:POKE646,PEEK(53281):PRINT"5 GOTO100":PRINT"RUN" 30 POKE198,3:POKE631,19:POKE632,13:POKE633,13:END 40 PRINT"[154][147][154][197]NTER DEVICE NUMBER ";:INPUTDE$:D=VAL(DE$):IFD<8 OR D>12 THEN40 41 POKE679,D 42 IFQ=1 THEN GOTO1101 43 IFQ=2 THENGOTO1201 44 IFQ=3 THEN GOTO 1301 45 IFQ=4 THEN1351 46 IFQ=5 THEN1401 47 IFQ=6 THEN1601 48 IFQ=7THEN1501 49 IFQ=8THEN1705 50 IFQ=9 THEN341 51 IFQ=10 THEN201 100 GOSUB4000:PRINT"[154] [195]HANGE [204]OAD [193]DDRESS " 101 PRINT" [196]IRECTORY " 102 PRINT" [196]ISK & FILE COMMANDS " 103 PRINT" [209]UIT " 110 POKE700,3:POKE701,35:POKE702,9:POKE703,11:POKE704,13:POKE705,15 120 POKE706,255:SYS52985 130 Z=PEEK(2) 140 ONZGOTO200,1100,700,2500 150 GOTO100 200 REM Q=10:GOTO40 201 REM CLR:DE=PEEK(679) 210 SO$="":PRINT"[197]NTER NAME OF FILE:"; 220 GETA$:IFA$=""THEN220 230 A=ASC(A$):IFA=13 THEN270 232 IFA$=CHR$(20) THEN240 234 IF(A<32)OR((A>127)AND(A<160))THEN220 236 IFLEN(SO$)<16 THEN SO$=SO$+A$:PRINT": "; 237 PRINT":";SO$ 238 GOTO220 240 IFLEN(SO$)<1 THEN 220 250 SO$=LEFT$(SO$,LEN(SO$)-1) 252 PRINT" "; 253 IFLEN(SO$)>0 THENPRINT":";SO$ 254 GOTO220 270 REM 295 PRINT"[197]NTER LOAD ADDRESS:"; 296 GETA$:IFA$=""THEN296 297 A=ASC(A$):IFA=13 THEN308 298 IFA$=CHR$(20)THEN303 300 IF(A<32)OR((A>127)AND(A<160))THEN296 301 IFLEN(AD$)<5THENAD$=AD$+A$:POKE781,5:POKE782,19:POKE783,0:SYS65520:PRINTAD$ 302 GOTO296 303 IFLEN(AD$)<1 THEN296 304 AD$=LEFT$(AD$,LEN(AD$)-1) 305 POKE781,5:POKE782,19:POKE783,0:SYS65520:PRINT" [157][157][157][157][157]"; 306 IFLEN(AD$)>0THENPRINTAD$ 307 GOTO296 308 IFLEFT$(AD$,1)="$" THEN 311 309 AD=VAL(AD$):H=INT(AD/256):L=(AD-H*256) 310 GOTO320 311 H$=RIGHT$(AD$,4) 312 D=0:IFH$>""THENFORI=1TOLEN(H$):A=ASC(MID$(H$,I,1))-48:D=D*16+A+(A>9)*7:NEXT 313 H=INT(D/256):L=(D-H*256) 320 REM 332 POKE781,6:POKE782,0:POKE783,0:SYS65520:PRINT"[195]ONTINUE?:[217][197][211][146][206][207]":C=1 333 GETI$:IFI$=""THEN333 334 IFI$=CHR$(17)THENC=1-C 335 IFI$=CHR$(145)THENC=1-C 336 IFC=1THENPOKE781,6:POKE782,10:POKE783,0:SYS65520:PRINT"[217][197][211][146][206][207]" 337 IFC=0THENPOKE781,6:POKE782,10:POKE783,0:SYS65520:PRINT"[146][217][197][211][206][207][146]" 338 IFI$=CHR$(13)THENC=C+1:ONCGOTO100,340 339 GOTO333 340 Q=9:GOTO40 341 DE=PEEK(679):D$=SO$ 343 PRINT"[211]EARCHING FOR "D$" - PRESS A KEY" 344 POKE198,0:WAIT198,1:POKE198,0 345 SD$="":SD$=D$:FORS=1TO19:GOSUB1000:IFJ=K THENX=FE:Y=S:S=19 346 NEXTS:PRINT"[195]HANGING LOAD ADDR. OF "D$ 347 OPEN8,DE,15:OPEN4,8,4,"#" 348 BP=(X-1)*32+3:PRINT#8,"U1:"4;0;18;Y 349 PRINT#8,"B-P:"4;BP 350 TR=ASC(T$+CHR$(0)):SE=ASC(S$+CHR$(0)) 351 CLOSE4:CLOSE8 352 OPEN8,DE,15:OPEN4,8,4,"#" 353 PRINT#8,"U1:"4;0;TR;SE 354 PRINT#8,"B-P:"4;2 355 PRINT#4,CHR$(L);CHR$(H); 356 PRINT#8,"U2:"4;0;TR;SE 376 CLOSE4:P=9:GOTO1503 377 CLOSE8:PRINT"[210]ETURNING TO MAIN MENU" 378 FORT=1TO500:NEXT:GOTO100 699 GOTO100 700 GOSUB3180 710 POKE700,8:POKE701,23:POKE702,4:POKE703,6:POKE704,8:POKE705,13 720 POKE706,15:POKE707,17:POKE708,20:POKE709,22:POKE710,255:SYS52985 730 W=PEEK(2) 740 ON W GOTO 1300,1200,1350,1600,1400,1700,1500,750 750 GOTO100 999 END 1000 FORG=1TO16-LEN(SD$) 1001 SD$=SD$+CHR$(160) 1002 NEXT 1003 OPEN8,DE,15 1004 OPEN4,DE,4,"#" 1005 PRINT"[147][211]EARCHING SECTOR"S 1006 FORFE=1TO8 1007 PRINT#8,"U1:";4;0;18;S 1008 BP=(FE-1)*32+2 1009 PRINT#8,"B-P:"4;BP 1010 GET#4,P$,T$,S$ 1011 TR=ASC(T$+CHR$(0)):SE=ASC(S$+CHR$(0)) 1012 IF(TR=1ANDSE=1)THENFE=8:GOTO 1020 1013 X=X+1:GET#4,N$ 1014 NA$=NA$+N$ 1015 IFX<16 THEN 1013 1017 GOTO 1024 1018 IFJ=K THEN 1021 1019 GOTO 1030 1020 NEXTFE 1021 CLOSE4:CLOSE8 1022 RETURN 1023 CLOSE4:CLOSE8:RETURN 1024 J=1:FORK=1TO16 1025 Q=ASC(MID$(NA$,K,1)+CHR$(0)) 1026 W=ASC(MID$(SD$,K,1)+CHR$(0)) 1027 IFQ=W THEN J=J+1 1028 NEXTK 1029 GOTO 1018 1030 NA$="":X=0:T$="":S$="":TR=0:SE=0:TY$="":Q=0:W=0:GOTO 1020 1100 Q=1:GOTO40 1101 CLR:DE=PEEK(679):PRINT"[147][201]NSERT DISK IN DEVICE"DE"& PRESS A KEY" 1102 POKE198,0:WAIT198,1:POKE198,0:OPEN8,DE,15 1103 PRINT#8,"I" 1104 OPEN4,DE,4,"#" 1105 PRINT#8,"M-R"CHR$(144)CHR$(7)CHR$(16) 1106 INPUT#8,X$ 1107 FORT=1TO19 1108 PRINT"[147]"SPC(6)"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 1109 PRINTSPC(6)"[221][196]ISKNAME:[146]"X$" [221]" 1110 PRINTSPC(6)"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][178][192][192][192][192][179]" 1111 PRINTSPC(6)"[221][198]ILE NAME [221][212]YPE[221][211]IZE[221]" 1112 PRINTSPC(6)"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][219][192][192][192][192][179]" 1113 PRINT#8,"U1:"4;0;18;T 1114 FORU=1TO8 1115 BP=(U-1)*32+2 1116 PRINT#8,"B-P:"4;BP 1117 GET#4,P$,T$,S$ 1118 TR=ASC(T$+CHR$(0)):SE=ASC(S$+CHR$(0)) 1119 IF(TR=1ANDSE=1) THENU=8:V=1:GOTO 1140 1120 IF(TR=0ANDSE=0)THENU=8:GOTO 1140 1121 X=X+1:GET#4,N$ 1122 NA$=NA$+N$ 1123 IFX<16 THEN 1121 1124 BP=BP+28 1125 PRINT#8,"B-P:"4;BP 1126 GET#4,L$,H$ 1127 BL=ASC(L$+CHR$(0))+256*ASC(H$+CHR$(0)) 1128 P=ASC(P$+CHR$(0)):P=P-128:IFP>5THENP=P-64 1129 IFP=1 THENTY$="[211]EQ":QS=QS+1 1130 IFP=2 THENTY$="[208]RG":QP=QP+1 1131 IFP=3 THENTY$="[213]SR":QU=QU+1 1132 IFP=4 THENTY$="[210]EL":QR=QR+1 1133 IFP<1 THENGOSUB 1159:NEXTU:GOTO 1142 1134 PRINTSPC(6)"[221]"NA$"[221]";TY$;" [221]";BL; 1135 IFBL<10THENPRINT" [221]" 1136 IFBL>10ANDBL<100THENPRINT"[221]" 1137 IFBL>100THENPRINT"[157][221]" 1138 TB=TB+BL 1139 GOSUB 1159 1140 NEXTU 1141 IFV=1THENV=0:NEXTT:GOTO 1145 1142 PRINTSPC(6)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][177][192][192][192][192][189]" 1143 POKE198,0:PRINT""SPC(6)"[208]RESS A KEY TO VIEW NEXT PAGE" 1144 WAIT198,1:POKE198,0:NEXT 1145 PRINT"[147][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 1146 PRINT"[221][211]TATISTICS FOR "X$"[221]" 1147 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]" 1148 N=QP+QR+QS+QU:PRINT"[212]OTAL NUMBER OF FILES:"N 1149 PRINT"[208]RG FILES:"QP 1150 PRINT"[211]EQ FILES:"QS 1151 PRINT"[210]EL FILES:"QR 1152 PRINT"[213]SR FILES:"QU 1153 PRINT"[194]LOCKS USED:"TB 1154 PRINT"[194]LOCKS FREE:"664-TB 1155 PRINT"[208]RESS A KEY TO RETURN TO MAIN MENU" 1156 POKE198,0:WAIT198,1:POKE198,0 1157 CLOSE4:CLOSE8 1158 GOTO100 1159 NA$="":X=0:TY$="":P$="":P=0:RETURN 1200 Q=2:GOTO40 1201 CLR:DE=PEEK(679):PRINT"[147][201]NSERT DISK TO FORMAT IN DEVICE"DE 1202 PRINT"& PRESS A KEY":POKE198,0:WAIT198,1:POKE198,0 1203 OPEN8,DE,15:OPEN4,DE,4,"#" 1204 PRINT#8,"U1:"4;0;18;0 1205 INPUT#8,E 1206 IFE>5THEN1208 1207 GOTO1226 1208 CLOSE4 1209 PRINT"[147][196]ISK NEEDS TO BE FORMATTED. [201]S THIS OK" 1210 INPUTAN$ 1211 IFAN$="N"THENCLOSE8:GOTO700 1212 IFAN$<>"Y"THEN1209 1213 PRINT"[197]NTER DISK NAME AND ID" 1214 INPUTDN$,ID$ 1215 PRINT"[147][196]ISK TO BE FORMATTED AS "DN$ 1216 PRINT"WITH ID "ID$ 1217 INPUT"[201]S THIS OK";AN$ 1218 IFAN$="N"THEN1213 1219 IFAN$<>"Y"THEN1215 1220 PRINT#8,"N0:"+DN$+","+ID$ 1221 OPEN4,DE,4,"#" 1222 PRINT#8,"U1:"4;0;18;0 1223 INPUT#8,E 1224 IFE>5THENPRINT"[147][196]ISK ERROR!!!":FORT=0TO1000:NEXT:CLOSE8:GOTO1200 1225 PRINT"[147][196]ISK FORMATTED OK":FORT=0TO1000:NEXT:CLOSE8:GOTO700 1226 CLOSE4:PRINT"[147][196]ISK NEEDS TO BE CLEARED" 1227 PRINT"[201]S THIS OK";:INPUTAN$ 1228 IFAN$="N"THENCLOSE8:GOTO700 1229 IFAN$<>"Y"THEN1227 1230 PRINT"[147][201]NPUT NEW DISK NAME" 1231 INPUTDN$ 1232 PRINT#8,"N0:"+DN$ 1233 OPEN4,DE,4,"#" 1234 PRINT#8,"U1:"4;0;18;0 1235 INPUT#8,E 1236 IFE>5THENPRINT"[147][196]ISK ERROR!!!":FORT=0TO1000:NEXT:CLOSE8:GOTO1200 1237 PRINT"[147][196]ISK CLEARED OK":CLOSE8:GOTO700 1300 Q=3:GOTO40 1301 CLR:DE=PEEK(679):PRINT"[147][154][201]NSERT DISK TO VALIDATE IN DEVICE"DE 1302 PRINT"[208]RESS A KEY TO CONTINUE" 1303 POKE198,0:WAIT198,1:POKE198,0 1304 PRINT"[214]ALIDATING... [208]LEASE WAIT..." 1305 OPEN8,DE,15,"V" 1306 P=3:GOTO1503 1308 FORT=1TO500:NEXT:CLOSE8:GOTO700 1350 Q=4:GOTO40 1351 CLR:DE=PEEK(679):PRINT"[147][201]NITIALISING DISK IN DEVICE"DE 1352 PRINT"[208]LEASE WAIT..." 1353 OPEN8,DE,15,"I" 1354 P=4:GOTO1503 1355 FORT=1TO500:NEXT 1356 CLOSE8:GOTO700 1400 Q=5:GOTO40 1401 CLR:DE=PEEK(679):PRINT"[147][201]NSERT DISK IN DEVICE"DE"& PRESS A KEY" 1402 POKE198,0:WAIT198,1:POKE198,0 1403 INPUT"[198]ILE NAME";SD$ 1404 PRINT"[201]S SECTOR KNOWN?":GOSUB1438 1405 IFT=0 THEN T=1 1406 FORS=TTO19:GOSUB1000:IFJ=K THENX=S:Y=FE:S=19 1407 NEXTS:IFX=0 THENPRINT"[198]ILE NOT FOUND":CLOSE4:CLOSE8:FORG=1TO1500:NEXTG:GOTO700 1408 OPEN8,DE,15:OPEN4,DE,4,"#" 1409 BP=Y-1:BP=BP*32:BP=BP+2 1410 PRINT#8,"U1:"4;0;18;X 1411 PRINT#8,"B-P:"4;BP 1412 GET#4,P$:P=ASC(P$+CHR$(0)) 1413 IFP>135 THENP=P-192:L%=1:GOTO1426 1414 IFP>5 THENP=P-128:L%=0 1415 PRINT"[198]ILE IS UNLOCKED":PRINT"[196]O YOU WISH TO LOCK IT?" 1416 GETK$:IFK$=""THEN1416 1417 IFK$<>"Y"THENGOTO1422 1418 P=P+192:P$=CHR$(P) 1419 PRINT#8,"B-P:"4;BP 1420 PRINT#4,P$:PRINT#8,"U2:"4;0;18;X 1421 CLOSE4:CLOSE8 1422 PRINT"[193]NOTHER FILE?" 1423 GETK$:IFK$="" THEN1423 1424 IFK$="Y" THENGOTO1400 1425 CLOSE4:CLOSE8:GOTO700 1426 PRINT"[198]ILE IS LOCKED":PRINT"[196]O YOU WISH TO UNLOCK IT?" 1427 GETK$:IFK$=""THEN1427 1428 IFK$<>"Y" THEN1433 1429 PRINT#8,"B-P:"4;BP 1430 P=P+128:P$=CHR$(P) 1431 PRINT#8,"B-P:"4;BP 1432 PRINT#4,P$:PRINT#8,"U2:"4;0;18;X 1433 CLOSE4:CLOSE8 1434 PRINT"[193]NOTHER FILE?" 1435 GETK$:IFK$="" THEN1435 1436 IFK$="Y" THEN GOTO1400 1437 GOTO700 1438 GETK$:IFK$=""THEN1438 1439 IFK$<>"Y"THENT=0:RETURN 1440 PRINT"[211]ECTOR";:INPUTT:RETURN 1500 Q=7:GOTO40 1501 CLR:DE=PEEK(679):PRINT"[147][154][197]RROR CHANNEL OF DEVICE"DE"READS:-" 1502 OPEN8,DE,15 1503 INPUT#8,EN,E$,TR,SE 1504 IFEN=1 THENPRINT""TR" FILES SCRATCHED":GOTO1508 1505 IFEN=0 THENPRINT"[196]EVICE"DE"[207][203]":GOTO1508 1506 PRINT""E$"AT ("TR","SE")" 1507 PRINT"([197]RROR NUMBER"EN")" 1508 IFP>0 THEN1511 1509 PRINT"[208]RESS A KEY TO RETURN TO DISK MENU":POKE198,0:WAIT198,1:POKE198,0 1510 CLOSE8:GOTO700 1511 REM 1513 IFP=3 THEN 1308 1514 IFP=4 THEN 1355 1516 IFP=6 THEN 1609 1518 IFP=8 THEN 1730 1519 IFP=9 THEN377 1520 CLOSE8:GOTO700 1600 Q=6 1601 CLR:DE=PEEK(679):PRINT"[147][154][201]NSERT DISK IN DEVICE"DE"& PRESS A KEY" 1602 POKE198,0:WAIT198,1:POKE198,0 1603 INPUT"[198]ILE TO SCRATCH";F$ 1604 PRINT"[211]CRATCHING "F$:PRINT"[193]RE YOU SURE?" 1605 GETK$:IFK$<>"Y"ANDK$<>"N" THEN1605 1606 IFK$="N" THEN 700 1607 OPEN8,DE,15,"S:"+F$ 1608 P=6:GOTO1503 1609 PRINT"[193]NOTHER FILE?" 1610 GETK$:IFK$=""THEN1610 1611 IFK$="Y"THEN1601 1612 CLOSE8:GOTO700 1700 Q=8:GOTO40 1705 CLR:DE=PEEK(679):PRINT"[147][201]NSERT DISK IN DEVICE"DE"& PRESS A KEY" 1710 PRINT"[198]ILE TO RENAME";:INPUTO$ 1715 PRINT"[206]EW NAME FOR "O$;:INPUTN$ 1720 PRINT"[210]ENAMING "O$" AS "N$ 1725 OPEN8,8,15,"R:"+N$+"="+O$ 1726 P=8:GOTO1503 1730 PRINT"[193]NOTHER FILE?" 1735 GETK$:IFK$=""THEN1735 1740 IFK$="Y"THEN1705 1745 GOTO700 2500 PRINT"[147][208]RESS B FOR [194]ASIC" 2510 PRINT"[208]RESS X TO RESET" 2520 PRINT"PRESS R TO RERUN" 2530 GETA$:IFA$=""THEN2530 2540 IFA$="X" THEN SYS64738 2550 IFA$="R" THEN RUN 2560 IFA$="B" THEN END 2570 GOTO2530 3180 PRINT"[147]";:POKE53280,14:POKE53281,6 3185 POKE53265,PEEK(53265)AND191:POKE53270,PEEK(53270)AND239 3190 POKE53272,(PEEK(53272)AND240)OR6 3195 PRINTSPC(7)"[154][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]":PRINTSPC(7)"[221][196]ISK[195]OMMANDS"; 3200 PRINT"}":PRINTSPC(7)"[171]```````````[179]" 3205 PRINTSPC(7)"}vALIDATE}":PRINTSPC(7)"}"; 3210 PRINT"}":PRINTSPC(7)"}fORMAT}" 3215 PRINTSPC(7)"}}":PRINTSPC(7)"}iNITIALISE"; 3220 PRINT"}":PRINTSPC(7)"}}" 3225 PRINTSPC(7)"[171]```````````````````````[179]":PRINTSPC(7)"}fILEcOMMANDS"; 3230 PRINT"}":PRINTSPC(7)"[171]```````````[179]" 3235 PRINTSPC(7)"}dELETEFILE}":PRINTSPC(7)"}"; 3240 PRINT"}":PRINTSPC(7)"}cHECK/CHANGEPROTECTION}" 3245 PRINTSPC(7)"}}":PRINTSPC(7)"}rENAMEFILE"; 3250 PRINT"}":PRINTSPC(7)"}}" 3255 PRINTSPC(7)"[171]```````````````````````[179]":PRINTSPC(7)"}rEADeRRORcHANNE"; 3260 PRINT"L}":PRINTSPC(7)"[171]```````````````````````[179]" 3265 PRINTSPC(7)"}qUITTOMAINMENU}":PRINTSPC(7)"[173]````````````````````"; 3270 PRINT"```[189]" 3275 RETURN 4000 PRINT"[154][147][154][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 4010 PRINT"[221] [221]" 4020 PRINT"[221] [221]" 4030 PRINT"[221] [221]" 4040 PRINT"[221] [221]" 4050 PRINT"[221] [221]" 4060 PRINT"[221] [221]" 4065 PRINT"[221] [221]" 4070 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]" 4999 RETURN